home *** CD-ROM | disk | FTP | other *** search
-
-
- QBX - Quick Basic Cross Referencer Version 2.06
- By Vernon D. Buerg Dec 4, 1986
-
-
- Purpose
- -------
-
- Determines cross references to alphanumeric labels and symbols
- within a BASIC source program.
-
- Syntax
- ------
-
- QBX [filename[.BAS]] [/D] [/Lnn] [/Cnnn]
- [/P]
- [/F[(filename)]]
- [/N]
-
- Remarks
- -------
-
- If no filename is supplied, you are prompted to enter the
- file name of the BASIC source file. The source file must
- have been saved in ASCII (,A) format. The program may contain
- any valid combination of numeric and alphameric labels. The
- syntax is dictated by the Microsoft Quick Basic Compiler manual
- and the IBM BASIC, Version 3.1, manual.
-
- The source file may contain TAB characters but their use
- may cause the listing to be mis-aligned.
-
- The output consists of a program listing and a cross-reference
- listing. The destination for the listing may be specified in
- the command as:
-
- /D display listings on the console display
- /P print the listings on the LPT1: printer
- /F write the listings to a file; may be supplied as (filename)
- /N suppress all listings
-
- For example, /F(MYPROG.LST) sets a destination of a file with
- the name MYPROG.LST. If no extension is supplied, .LST is used
- for the program listing and .REF is used for the cross-reference
- listing.
-
- If no destination parameter is supplied, you will be asked to supply
- it.
-
- The number of lines per page may be suppied by the /L parameter,
- for example /L66 sets a default of 66 lines per page.
-
- The number of columns per line may be supplied by the /C parameter,
- for example /C132 sets a default of 133 columns per line.
-
-
-
- Meta Commands
- -------------
-
- The source file may contain the meta commands described in
- the Quick Basic (versions 1 or 2) manuals. These meta commands
- are currently recognized:
-
- $INCLUDE - cause QBX to include the named file with
- the current source program, and may be nested
- to approximately 15 levels;
- $LINESIZE - sets the number of characters per page;
- $PAGESIZE - sets the number of program lines per page;
-
- $PAGE - forces a new listing page
- $SKIP - inserts one blank line into the listing
- $SKIP:n - inserts "n" blank lines into the listing
- $SUBTITLE - adds a subtitle to each listing page second line
- $TITLE - adds a title to each listing page; if none
- are supplied, the title is "QBX"
-
- Operation
- ---------
-
- There are two parts to the operation of QBX. The first phase
- produces a program listing and builds the internal tables
- representing the program's labels and symbols. The second
- phase produces a label and a symbol cross reference.
-
- The output from each phase may be directed to the screen,
- a printer (LPT1), a file, or nowhere. You are prompted for
- the destination.
-
- The format of the listings is governed by two values: the
- number of lines per page, and the number of columns per line.
- You supply both values. The defaults are 66 lines per page
- and 80 columns. You may over-ride these values by using the
- meta commands $PAGESIZE and $LINESIZE in the program. If the
- console is used for output, the values are always set to 24
- lines and 80 columns with an option at the end of each page
- to pause or continue.
-
- You must set your printer to the appropriate lines and columns
- values before running QBX. It does not send any printer codes.
-
- The internal tables contain the labels, symbols, and cross
- reference information. The current limits are 2500 labels and
- symbols, and approximately 16000 cross references (depends
- upon the amount of memory available. There is also a limit
- off 200 fields per statement. A field is a symbol, label,
- delimiter, or operator. These values are summarized at the
- end of program execution.
-
- | You may terminate processing by pressing the ESCape key.
-
-
-
- Version history
- ---------------
-
- 1.01-1.08, 1/17/86, the hack begins
- 1.09, 1/19/86
- - fix Error6 in line 3440
- - correct listing of long program lines
- - add missing 30 keywords (oops)
-
- 1.10, 1/19/86 - speed up analysis phase
- 1.11, 1/22/86 - correction for comments
- 1.12,1.13; 1/22/86 - revise symbol table lookup
- 1.14, 1/24/86 - implement meta commands
- 1.15, 1/27/86 - correct FIELD as labels
- 1.16,1.17, 1/28/86 - improve analysis routines
-
- 1.18, 2/1/86
- - externalize XREFS table to improve housekeeping time
- - requires LINK QBX+XREF; followed by EXEPATCH to set x1800 max paras
- 1.19, 2/3/86
- - optimize xref listing and external xref subroutines
- 1.20, 2/4/86
- - add external UPC subroutine
- 1.21-1.23, 2/7/86
- - add hash table for symbol look-up
- - use binary search for keyword look-up
- 1.24-1.26, 2/8/86
- - correct Error 6 at line 3900
- 1.27-1.28, 2/13/86
- - remove UPC due to fouling meta commands
- - clean up headings and titles
-
- 1.29, 3/9/86 - correct EXEPATCH problem
- 1.30, 3/11/86 - correct Print function
- 1.31, 4/02/86 - print after parsing record
- 1.32, 4/08.86 - correct label case, correct tabs
- 1.33, 4/22/86 - correct page title positioning
- 1.34, 6/23/86 - increase maximum FIELDS to 200
-
- 2.00, 7/18/86 - add QB 2.00 keywords
- 2.01, 9/27/86 - correct not finding labels with leading blanks
-
- 2.02, 11/12/86
- - Correct problem with $INCLUDE
- - Correct error 52 at 3350 if don't want xref output
- - expand label tables from 2000 to 2500
- - supply documentation
-
- 2.03, 11/17/86
- - correct handling of continued lines (using underscore) which
- are followed by comments
- - correct handling of $TITLE; default title is now program name
- - correct handling of lower case meta commands
- - show name(s) of included files during first phase
-
- 2.05, 11/28/86
- - add command line options for destination, lines per page,
- and columns per line
- - improve detection of label versus symbol references for numbers
- - note assignment to symbols by an asterisk in cross reference
-
- 2.06, 12/06/86
- - fix incorrect statment numbers in xref after labels
- - remove duplicate references
-
-
-
- Notes
- -----
-
- Copyright Vernon D. Buerg 1986. All rights reserved.
-
- QBX was writen using the Microsoft Quick Basic Compiler,
- Version 2.00, and one assembler subroutine. At least 128K
- of memory is required, but 192K or more is recommended. The
- additional memory is used to increase the limits of the numbers
- of labels, symbols and cross references that QBX can process.
-
- QBX is for personal, private use and may be freely copied and
- distributed. Please don't charge for it, modify it, or include
- it with commercial goods or services. This was hard work.
-
- The source is available upon request and under my terms.
-
- Please direct your inquiries, complaints, suggestions, etc., to:
-
- Vernon D. Buerg
- 456 Lakeshire Drive
- Daly City, CA 94015
-
- Data: 415-994-2944, 24 hour BBS
- Work: 415-991-0644, after 10 am Pacific time
- Compuserve: 70007,1212
- Fidonet: 125/4
-
-
-
-
-
- ----------------end-of-author's-documentation---------------
-
- Software Library Information:
-
- This disk copy provided as a service of
-
- The Public (Software) Library
-
- Disks in the library are updated monthly.
- For a copy of the latest monthly software library newsletter
- and a list of the 800+ disks in the library, call or write
-
- The Public (Software) Library
- P.O.Box 35705, Rm. F
- Houston, TX 77235-5705
- (713) 721-6104
-
- We are not the authors of this program, nor are we associated
- with the author in any way other than as a distributor of the
- program in accordance with the author's terms of distribution.
-
- Please direct shareware payments and specific questions about
- this program to the author of the program, whose name appears
- elsewhere in this documentation. If you have trouble getting
- in touch with the author, we will do whatever we can to help
- you with your questions.
-